class Solution
{
public:
    // 寻找平方小于等于x的数
    int mySqrt(int x)
    {
        if (!x)
            return 0;
        int left = 1, right = x;
        while (left < right)
        {
            long long mid = left + (right - left + 1 >> 1);
            if (mid * mid < x)
                left = mid;
            else if (mid * mid == x)
                return mid;
            else
                right = mid - 1;
        }
        return left;
    }
};